package com.zdxlz.fcmp.upms.api.vo;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(description = "菜单Meta元数据视图对象")
public class Meta {

    @Schema(description = "路由标题")
    private String title;

    @Schema(description = "路由的角色列表")
    private List<String> roles = new ArrayList<>();

    @Schema(description = "是否缓存该路由")
    private Boolean keepAlive;

    @Schema(description = "是否为常量路由")
    private Boolean constant;

    @Schema(description = "图标")
    private String icon;

    @Schema(description = "本地图标")
    private String localIcon;

    @Schema(description = "图标大小")
    private Integer iconFontSize;

    @Schema(description = "路由排序顺序")
    private Integer order;

    @Schema(description = "路由的外部链接")
    private String href;

    @Schema(description = "是否在菜单中隐藏该路由")
    private Boolean hideInMenu;

    @Schema(description = "激活菜单")
    private String activeMenu;

    @Schema(description = "默认情况下，相同的路由路径会使用一个标签页，即使查询参数不同 如果设置为 true，则具有不同查询参数的路由将使用不同的标签页")
    private Boolean multiTab;

    @Schema(description = "若设置，路由将在标签页中固定显示，其值表示固定标签页的顺序（首页是特殊的，它将自动保持fixed)")
    private Integer fixedIndexInTab;

    @Schema(description = "路由查询参数，如果设置的话，点击菜单进入该路由时会自动携带的query参数")
    private List<Map<String, String>> query = new ArrayList<>();

}
